1. Field of the Invention This invention relates to distributed file systems and, more particularly, to file mapping conventions used in distributed file systems and distributed file sharing systems.
2. Description of the Related Art
Computer systems generally store files on one or more storage systems such a disk drive. To access these files, a file system is used. The type of file system is typically dependent on the operating system running on a given computer system, although file system software is available which may run in conjunction with any operating system.
Although each type of file system may have a its own way of identifying the location of a given file, the file systems may be similar. For example, file systems are typically arranged in a hierarchy. To describe a specific location in the file system hierarchy, a pathname is typically specified using a hierarchical structure staring at a root directory. In the file system associated with the UNIX operating system, forward slashes ‘/’ may be used to identify different levels of the hierarchy, while in the file system associated with the Windows™ operating system back slashes ‘\’ may be used. The root directory may be identified by the first slash in a pathname. To illustrate, /a/b/c is a pathname in the UNIX operating system, while \a\b\c may be a pathname in the Windows™ operating system. The file naming convention used above indicates that the ‘a’ is the name of a directory under the root, the ‘b’ is a directory name under the ‘a’ directory and the ‘c’ is the name of some file under the ‘b’ directory. The names are human-readable names. However, the operating system treats the file system structure differently. For example in the UNIX file system, one of four types of items are defined: ordinary files, directories, special files and links.
An ordinary file may contain text, data or program information. An ordinary file may not contain another file or directory. A special file may represent an input/output (i/o) device, such as a printer of terminal, for example. A link is a pointer to another file. A directory is a file containing an entry line for each item in the directory, where each line includes a name and an i-number. An i-number is a numerical reference to the location of the item. The i-number serves as an index into an i-list, which is a complete list of all the storage space available to the file system.
A single i-list refers to an area of physical memory. A UNIX machine may be connected to several file systems, each with its own i-list. The purpose of an i-list is to provide the operating system with a map into the memory of some physical storage device. Each entry in an i-list is referred to as an inode. The modes contain the information necessary to get information from the storage device. The i-list is typically stored on the same memory storage device that it maps. This means that the directory files associated with a pathname are located on the same machine.
The convention described above may work well in certain systems having centralized servers. However, they may not work as well when applied to a distributed file system in which files may be stored in a location-independent network environment and accessed from any machine in the network, particularly in computer systems using a decentralized network.